package com.newshub.ai.util;

/**
 * 问题类型枚举
 * 用于判断问题是否需要图表展示
 */
public enum QuestionType {
    
    /**
     * 对比类问题：适合柱状图
     * 例如：对比、比较、排名、哪个多等
     */
    COMPARISON("对比类", "适合柱状图展示"),
    
    /**
     * 分布类问题：适合饼图
     * 例如：分布、占比、比例、构成等
     */
    DISTRIBUTION("分布类", "适合饼图展示"),
    
    /**
     * 趋势类问题：适合折线图
     * 例如：趋势、变化、增长、趋势等
     */
    TREND("趋势类", "适合折线图展示"),
    
    /**
     * 详情类问题：不需要图表
     * 例如：内容、详情、具体、是什么等
     */
    DETAIL("详情类", "不需要图表展示"),
    
    /**
     * 分析类问题：可能不需要图表
     * 例如：分析、原因、为什么、如何等
     */
    ANALYSIS("分析类", "可能不需要图表展示"),
    
    /**
     * 未知类型：默认不生成图表
     */
    UNKNOWN("未知类型", "默认不生成图表");
    
    private final String displayName;
    private final String description;
    
    QuestionType(String displayName, String description) {
        this.displayName = displayName;
        this.description = description;
    }
    
    public String getDisplayName() {
        return displayName;
    }
    
    public String getDescription() {
        return description;
    }
    
    /**
     * 判断是否需要生成图表
     */
    public boolean needsChart() {
        return this == COMPARISON || this == DISTRIBUTION || this == TREND;
    }
    
    /**
     * 获取推荐的图表类型
     */
    public String getRecommendedChartType() {
        switch (this) {
            case COMPARISON:
                return "bar";
            case DISTRIBUTION:
                return "pie";
            case TREND:
                return "line";
            default:
                return "table";
        }
    }
}
